home *** CD-ROM | disk | FTP | other *** search
/ Web Designer 98 (Professional) / WebDesigner 1.0.iso / cgi2 / download.cgi-s=counter&c=txt&f=readme < prev    next >
Text File  |  1996-06-03  |  18KB  |  366 lines

  1. ##############################################################################
  2. # Counter                       Version 1.1.1                                #
  3. # Copyright 1996 Matt Wright    mattw@worldwidemart.com                      #
  4. # Created 10/27/95              Last Modified 4/25/96                        #
  5. # Scripts Archive at:           http://www.worldwidemart.com/scripts/        #
  6. ##############################################################################
  7. # If you run into any problems while trying to configure this scripts, help  #
  8. # is available.  The steps you should take to get the fastest results, are:  #
  9. #       1) Read this file thoroughly                         #
  10. #       2) Consult the Matt's Script Archive Frequently Asked Questions:     #
  11. #               http://www.worldwidemart.com/scripts/faq/             #
  12. #       3) If you are still having difficulty installing this script, send   #
  13. #          e-mail to: scripts-help@tahoenet.com                     #
  14. #          Include any error messages you are receiving and as much detail   #
  15. #          as you can so we can spot your problem.  Also include the variable#
  16. #          configuration block that is located at the top of the script.     #
  17. #                                         #
  18. # Hopefully we will be able to help you solve your problems.  Thank you.     #
  19. ##############################################################################
  20. # COPYRIGHT NOTICE                                                           #
  21. # Copyright 1996 Matthew M. Wright  All Rights Reserved.                     #
  22. #                                                                            #
  23. # Counter may be used and modified free of charge by anyone so long as       #
  24. # this copyright notice and the comments above remain intact.  By using this #
  25. # code you agree to indemnify Matthew M. Wright from any liability that      #  
  26. # might arise from it's use.                                                 #  
  27. #                                                                            #
  28. # Selling the code for this program without prior written consent is         #
  29. # expressly forbidden.  In other words, please ask first before you try and  #
  30. # make money off of my program.                                              #
  31. #                                                                            #
  32. # Obtain permission before redistributing this software over the Internet or #
  33. # in any other medium.    In all cases copyright and header must remain intact.#
  34. ##############################################################################
  35.  
  36. This counter script is built for users to be able to create a counter 
  37. program in-lined into their home page without having to use Server Side 
  38. Includes.
  39.  
  40. To use this counter program, you will need to go get a program called 
  41. FLY, which allows an easy interface into the GD graphics library, which 
  42. is written in C.  I easily compiled fly without any problems on several 
  43. different machines:  SunOS, OSF 3.2, and more.  You can get FLY at:
  44.  
  45. http://www.unimelb.edu.au/fly/fly.html
  46.  
  47. But it is necessary to have this or else my counter program will not work. Version 1.1 of my counter program was written to correspond with version 1.1 of FLY and you will need to upgrade if you are still using version 1.0 of FLY.
  48.  
  49. My counter program comes with 7 files:
  50.  
  51.         1) counter.pl      - The Counter Program Itself.
  52.         2) count.txt       - The data file that holds the counter number.
  53.         3) access_log      - Log file of accesses to your counter.
  54.         4) error_log       - Log file of errors your counter has produced.
  55.         5) html_log.pl     - Produce nice HTML file of access_log.
  56.     6) bad_referer.gif - The Bad Referer Error Image
  57.     7) README       - Detailed Installation Instructions (This file)
  58.     8) There is also an explanation about digits.
  59.  
  60. Each file requires something to be done to it.  Below is a description of 
  61. how to install the counter program and make it work on your system.
  62. _________________________________________________________________________
  63.  
  64.                               COUNTER.PL
  65.                               ==========
  66.  
  67. This is by far the hardest part of the setup.  There are a lot of options 
  68. and variables you will need to define and set to proper locations on your 
  69. system.  Although it may seem as though there are a lot of different 
  70. variables and options, it adds a lot of flexibility to the counter.  You 
  71. will need to place this file in the cgi-bin on your server and make sure 
  72. you chmod it 755 so that it is readable and executable by your server's uid.
  73.  
  74. #######################################################################
  75. # Define Variables
  76.  
  77.     ### FILE AND DIRECTORY LOCATIONS, REFERERS ###
  78.  
  79. $count_file = "/home/user/counter/count.txt";
  80.     The count file is the file in which the number of accesses will 
  81. be displayed.  It is not a good idea to edit this file by hand as it can 
  82. cause pesky new line characters, or may mess up the number.  Use 
  83. new_count.pl to start with a different number, or simply start with the 
  84. default value which is 0.
  85.  
  86. $digit_dir = "/home/user/counter/digits/XXXX";
  87.     This is the directory that the digits for your counter are in.  
  88. In this directory, you must have files numbered 0.gif - 9.gif.  They must 
  89. all be of equal width and height for this counter to work.  I may make it 
  90. more flexible in the next version.
  91.  
  92. $access_log = "/home/user/counter/access_log";
  93.     This counter also comes with the option of having logs with it, 
  94. including a perl script which will nicely format results into a cool html 
  95. page.  You don't have to worry about the path to this file if you turn 
  96. the $uselog variable off, but if you set $uselog to 1, then make sure 
  97. you have the correct path to a file called access_log and that  this file 
  98. and the directory it is in is readable and writable by the web server 
  99. uid.  This means chmod them 777.
  100.  
  101. $error_log = "/home/user/counter/error_log";
  102.     This is the same as the access_log above, except for the fact 
  103. that this file will contain any errors that users may get when trying to 
  104. access your counter.  This is currently limited to a Time Out and a Bad 
  105. Referer.  Please note that these should be the paths to your local 
  106. access_log and error_log files that come with this script. Do not link 
  107. them to your main error and access_log files.
  108.  
  109. $flyprog = "/home/user/counter/fly/fly";
  110.     The fly program is required for this counter program to work.  It 
  111. is easy to install and once you do, make sure you chmod the 'fly' 
  112. program file 755 o anyone can execute it and then change the above 
  113. example path to the path of your real fly program.
  114.  
  115. $fly_temp = "/home/user/counter/fly_temp.gif";
  116.     For this script to work it will need to have a temporary file to which it can print commands for fly to execute.  This file will be generated by the script the first time it is run and each time it is run it will be deleted.  Should someone stop the load
  117.  
  118.  
  119.  
  120. ing process in the middle of execution and this file not get deleted it will just be overwritten the next time the script is called.
  121.  
  122. $bad_referer_img = "http://your.host.xxx/counter/images/bad_referer.gif";
  123.     This should be the url to the bad_referer.gif that comes with 
  124. this package.  It will be the image that is sent out to people if they 
  125. attempt to access your counter from a page that is not in the @referers 
  126. variable.
  127.  
  128. @referers = ("www.host.com","host.com","your.host.com","129.46.75.89");
  129.     This variable should be set the server names that are allowed to 
  130. access your counter.  For example, you would want your.host.xxx, 
  131. www.host.xxx, and possibly the IP numbers as well and any other names 
  132. under which servers your page can be accessed.
  133.  
  134.     ### IMAGE SETTINGS ###
  135.  
  136. $width = "15";
  137. $height = "20";
  138.     The above two variables should be the width and height for a 
  139. single image labeled 1 - 9.  They must each have the same width and 
  140. height.  A future version of this script may allow for you to use 
  141. different widths and heights, but for now, stick to sets of images that 
  142. all have the same width and height for each image.  The width and height 
  143. are given on all of the digits I have at my site, but you may have to 
  144. download others and manually get the image size if you use outside gifs.
  145.  
  146. $tp = "X";
  147.     This will set your transparency color.  If you leave this 
  148. variable at X, it will assume you don't want to make any color in your 
  149. images transparent. If you do want to make something transparent, put the 
  150. rgb color code in for this variable.  If you want to make black 
  151. transparent, you would set $tp = "0,0,0"; or if you wanted the white color 
  152. to be transparent you would set $tp = "255,255,255";
  153.  
  154. $il = "1";
  155.     You can also have your counter image interlaced.  Set this 
  156. variable to 1 if you want it interlaced and 0 if you do not.
  157.  
  158. $frame_width = "3";
  159.     This counter program also allows you to have a frame around your 
  160. counter image.  If you want a frame around your counter number, simply 
  161. set this value to a number greater than 0.  0 will make it so that you do 
  162. not have a frame.  The numbers represent the width of the frame in pixels.
  163.  
  164. $frame_color = "255,255,255";
  165.     If you set your counter to have a frame_width value greater than 0, 
  166. then you must set this variable to the color that you want your frame to 
  167. be in.  Colors should be in the rgb color scheme, so again setting this 
  168. variable to '0,0,0' would give you a black border and setting it to 
  169. '255,255,255' would give you a white border.
  170.  
  171. $dot = "X";
  172.     Setting this value to 1 will cause the script to return a single 
  173. transparent pixel, and yet your log files will still be updated.  This is 
  174. useful if you want to be able to use the logging sequence, but don't have 
  175. server side includes to implement a real logging program.  Users will 
  176. not even be able to tell that the dot is there.
  177.  
  178. $logo = "X";
  179.     This is the same function as $dot, in that it will do the logging 
  180. for you, without people really noticing a counter, except if you set this 
  181. value to a url of a real logo or image of some kind, that image will be 
  182. returned in place of this counter script and the log will be updated with 
  183. information.
  184.  
  185.     ### OPTIONS ###
  186.  
  187. $max_time = "7";
  188.     The max time variable is set to the maximum number of seconds you 
  189. want your user to wait before receiving the time_out error image.  The 
  190. error message will be sent out if the counter program is still in use by 
  191. another client and it has had to wait $max_time seconds for the other 
  192. client to finish.
  193.  
  194. $uselog = "1";    # 1 = YES; 0 = NO
  195.     If you want to use the logging features of this script, set this 
  196. variable to 1, otherwise turn it to 0.
  197.  
  198. # Done
  199. #######################################################################
  200.  
  201. Congratulations.  You made it through the most difficult file to configure!
  202. _________________________________________________________________________
  203.  
  204.                               COUNT.TXT
  205.                               =========
  206.  
  207. If you wish to start with a different number than 1, simply open up this 
  208. file and type in your new counter number.  Then the script will display 
  209. this number the next time.
  210.  
  211. _________________________________________________________________________
  212.  
  213.                               HTML_LOG.PL
  214.                               ===========
  215.  
  216. This file can be used to generate a nice HTML 3 Table formatted document 
  217. of your access_log.  It still looks nice in other browsers  that do not 
  218. support 3.0 though.  There is a little configuring you will have to do 
  219. with this file.  The major change in this file from version 1.0 is that you can choose whether you woudl like to be able to access this file through the web or run it at the prompt.  If you have huge stat files you will probably wan tot run it at a unix p
  220.  
  221.  
  222.  
  223. rompt and redirect the output to a file, so that you don't have to regenerate stats every time you want to view them.  ON the other hand, if you don't have telnet access or dial up access to a unix prompt you will want to set the $web option to 1 so that 
  224.  
  225.  
  226.  
  227. you can just call this script through the web and it will generate the stats on the fly.
  228.  
  229. ###################################################################
  230. # Define Variables
  231.  
  232. $web = 1;
  233.     This option allows you to configure the script to either run from the web or to be used as a program that you runb at the prompt and redirect output.  If you choose to set this to '1', then you can simply call the program as a web page, however if you ch
  234.  
  235.  
  236.  
  237. oose to set this to 0, you should run this at the prompt like: 
  238.  
  239.     html_log.pl > stats.html
  240.  
  241. $log_file = "/home/user/counter/access_log";
  242.     This should be defined exactly the same as you defined 
  243. $access_log in your counter.pl file.  Simply the system path to the 
  244. access_log file that my counter program creates.
  245.  
  246. $min_remote = "10";
  247.     This is the minimum number of accesses a remote host must have 
  248. for them to make your html list.
  249.  
  250. $min_agent = "5";
  251.     This is the minimum number of times a browser must access your 
  252. page before it shows up in your list of browsers accessing your page.
  253.  
  254. # Done
  255. ###################################################################
  256.  
  257. ###################################################################
  258. # Select Options
  259.  
  260. $expand_agent = 0;      # 0 = NO; 1 = YES
  261.     If this is set to zero, then the user agents will be grouped by 
  262. the main portion of their USER_AGENT environment variable.  If you set 
  263. this to 1, then they will stay as is and you will see several entries of 
  264. the same browser, but for different platforms.  Setting it to 0 provides a 
  265. much nicer and more compact read out.
  266.  
  267. $show_percent = 1;      # 0 = NO; 1 = YES
  268.     This will allow you to show the percentage that a certain item 
  269. takes up.  For instance, if you have 5000 accesses to your page and 500 
  270. of them are from someone else's page, a 10% will be shown next to it, if 
  271. you set this variable to 1.  Setting it to zero makes it more compact, 
  272. but in my opinion, setting it to 1 is nice.
  273.  
  274. $title = "Access Statistics for My Home Page";
  275.     Title provides the title and heading for your access statistics page.
  276.  
  277. $title_url = "http://my.domain.xxx/mypage.html";
  278.     This is the url to the page in which you are showing accesses.  
  279. For instance, if I have the counter on:  
  280. http://my.domain.xxx/mypage.html.  You would set this variable to that page.
  281.  
  282. # Done
  283. ###################################################################
  284. _________________________________________________________________________
  285.  
  286.                          ACCESS_LOG & ERROR_LOG
  287.                          ======================
  288.  
  289.     These files simply need to be placed in the spot that is 
  290. indicated in the $access_log and $error_log variables in counter.pl.  
  291. They also need to be chmoded 777 so that they can be written to by the 
  292. web server uid.  The directory they are in should also be chmoded 777.
  293.  
  294. _________________________________________________________________________
  295.  
  296.                            BAD_REFERER.GIF
  297.                            ===============
  298.  
  299.     This image file needs to be placed in the spot indicated by the 
  300. $bad_referer.gif variables in the counter.pl file.  It needs to be chmoded 744 so that it is readable by everyone and so that the web server can link to them in case of a time out.
  301.  
  302. _________________________________________________________________________
  303.  
  304. COUNTER DIGITS
  305. ==============
  306.  
  307. My program does not currently come with a standard set of digits.  This 
  308. is because I just haven't had the time to make a bunch of counter 
  309. images.  There are plenty of places out on the internet that provide free 
  310. counter images, and all you have to do, is download a set of them, 
  311. configure the directory they are in, change all the names to 0.gif - 
  312. 9.gif and then get the width and height in pixels.  Many graphics 
  313. programs can easily do this.  Here are some sites below that have counter 
  314. digits:
  315.  
  316. YAHOO
  317. http://www.yahoo.com/Computers_and_Internet/World_Wide_Web/Programming/Access_Counts/
  318. They have a lot of links to counter places.
  319.  
  320. DIGIT MANIA
  321. http://cervantes.learningco.com/kevin/digits/
  322. Great counter images, all in one place!
  323.  
  324. Let me know if you have any problems with the counter images!
  325.  
  326. CALLING THE SCRIPT
  327. ==================
  328.  
  329. I accidentally left out the part about how to call this program in my previous release.  You simply can call this program like you would call any other image or background picture.  Examples are shown below:
  330.  
  331.     <img src="http://www.your.host.xxx/path/to/counter.pl">
  332.  
  333. That will give you the standard counter image, andyou can put <center> tags around it or position it however you like on your web page.
  334.  
  335. You can also make your counter the bacground image for your page, although it will probably look pretty tacky, just use:
  336.  
  337.     <body background="http://www.your.host.xxx/path/to/counter.pl">
  338. _________________________________________________________________________
  339.  
  340. HISTORY
  341. =======
  342.  
  343. VERSION 1.0    - 11/25/95    - Released the first version of this script.
  344. VERSION 1.1    - 12/31/95    - Version fixed to run with new version of                   FLY.
  345.                 - Problems with time outs and images not                   getting erased partly solved.
  346.                 - Description of how to put the counter                   image into your web page added.
  347.                 - Other Minor Details Fixed.
  348. VERSION 1.1.1    - 1/11/96    - Small Bug in HTML_LOG.pl Fixed.
  349.         - 4/25/96    - URL to Digit Mania Fixed.
  350. _________________________________________________________________________
  351.  
  352. Need more help?
  353.  
  354.     People often have small problems setting up many of my scripts, 
  355. and that is what led me to create the Matt's Script Archive Frequently 
  356. Asked Questions.  You can reach this helpful place by pointing your web 
  357. browser to:
  358.  
  359.         http://worldwidemart.com/scripts/faq/
  360.  
  361.     If you encounter a problem that is not in the FAQ, feel free to 
  362. write to me, and I will do my best to help you solve whatever you are 
  363. having trouble with.
  364. _____________________________________________________________________________
  365. Matt Wright - mattw@worldwidemart.com - http://www.worldwidemart.com/scripts/
  366.